#====================================================
	基于mysql5.5
#====================================================

一、基本操作
	0、字符集
		mysql的MyISM、MEMORY、NDBCLUSTER，InnoDB存储引擎都支持字符集的设置，可以在server，database、table、column级别设置。
		show character set;  //查看字符集，5.5支持GBK和GB2312
	1、数据的登录、密码修改
		mysql -u root -p
		set password for root@"%"=PASSWORD("newpassword");
		select version();
	2、mysql5.5基本参数查询
		select version(),current_date;
		select user();   //root@localhost
		select database();
		show tables;
		use testdb;[切换数据库]
		select database();[显示当前所在数据库]
		create database newdatabase;
		drop database newdatabase;
		alter database newdatabase default character set utf8;【修改数据库默认编码】
		show variables like "have%";
		show processlist;
		set-variable=max_user_connections=30 这个就是单用户的连接数
		set-variable=max_connections=800 这个是全局的限制连接数
	3、表操作、表创建、表修改、添加字段、
		show tablas;
		show create table tablename;[显示创建表的语句]
		desc tablename;[显示表结构]
		create table tablename(id int not null auto_increment,name varchar(16) 
		\not null,password varchar(18),primary key(id) );
		alter table tablename add [column] cln1 varhcar(20) not null;
		alter table tablename drop [column] cln1;
		alter table tablename change cln1 newcln1 varchar(20);
		alert table drop primary key;[删除主键]
	4、表查询更新、数据操作、存储过程视图函数、
		insert into m_table values('hello','world',now());                  
		select name [as] cn from table;                                                //as 查询指定列明
		select t.name cn from m_user where  [t.name like 'M%'];                        //通配符查询_单个字符，%任意多字符
		select [sno,count(sno),sum(score)] from m_score [group by sno];                //查询输出列必须出现在分组条件中或为分组函数
		select * from m_score order by score limit 11,10           					   //limit 分页 limit “起始位置，大小”
		select sno from (select sno,count(sno) nb  from m_score where score >90 group by sno) t1 where t1.nb >=2;     //子查询
		select * from t1 left join t2 on t1.ns = t2.ns;

		==== 存储过程 ====
    

二、优化

	1、SQL优化
	2、索引优化
	3、数据库结构优化
	4、InnoDB表优化
		最佳实践
		1、为表指定主键
		2、设置外键 on join columns
		3、

三、数据备份
	======函数==========================
	数学函数：
		

	insert into tablename select * form tablename;

	5、数据备份和恢复
	5.1 mysqldump [--add-drop-table] dbname [table1 table2 table3...] >dbname..d-a-t-e
	source file.sql
	5.2 直接拷贝文件 拷贝表定义和数据文件
	6、数据库Server参数配置，默认值
	     6.1最大连接数配置
	      show variables like "%max_connections%";
	                  在my.cnf中修改max_connections=200
	     6.2最大连接数、缓存配置
	     6.3存储引擎配置
	    mysql5.5 默认存储引擎是innoDB可以在my.cnf中配置相关属性
	     
	     default-character-set=utf8 【默认数据库编码my.ini】

四、HA

A.关于用户登录和管理
    1.mysql5.7 linux版本默认密码修改？
        a)以skip-grant-tables参数启动mysql，这样是不需要密码就可以连接的，连接后进行密码修改；
        b)如果提示The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement，可执行如下操作后重新修改
          set global read_only=1;(读写属性，0为只读) <a href="http://www.cnblogs.com/xionghui/archive/2013/03/01/2939342.html">参考</a>
          flush privileges;
        







